package com.example.tatil.controller;

import com.example.tatil.pojo.Emp;
import com.example.tatil.pojo.Result;
import com.example.tatil.service.EmpService;
import com.example.tatil.utils.JwtUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RequestMapping("/login")
@RestController
@Slf4j
public class LoginController {

    @Autowired
    private EmpService empService;
    //登陆验证
    @PostMapping
    public Result login(@RequestBody Emp emp){
        log.info("登陆验证，参部：{}",emp);
        Emp e = empService.login(emp);

        //如果登陆成功生成令牌下发
        if (e!=null){
            Map<String, Object> claims = new HashMap<>();
            claims.put("id",e.getId());
            claims.put("name",e.getName());
            claims.put("username",e.getUsername());
            String jwt = JwtUtils.generateJwt(claims);//JWT令牌包含了当前登录的员工信息

            return Result.success(jwt);
        }
        //失败，返回错误信息
        return Result.error("用户名或密码错误");


    }

    /*
    * Filter过滤器，是javaweb 三大组件
    * 过了不起可以把对资源的请求拦截下来，从未实现一些特殊功能
    * 过滤器一般完成一下通用的操作，比如： 登录校验统一编码处理、敏感字符处理等
    *
    * */
    //登录校验


}
